using System;
using System.Collections.Generic;
using UnityEngine;
using WorldMapNew;

namespace Gameplay.PVE.Data
{
    /// <summary>
    /// 挂机地图
    /// </summary>
    public class PveMapData : ScriptableObject
    {
        public int mapId;
        public List<PveMapRegion> regions = new List<PveMapRegion>();
        public List<PveMapPoint> points = new List<PveMapPoint>();
        public Vector3 regionOffset;
        public List<bool> blocks;
        public int width;
        public int height;
        public Vector3 blocksOffset;
        public List<RpgBattleRegion> rpgBattleRegions = new List<RpgBattleRegion>();
        public List<Vector3> peoplePoint = new List<Vector3>();
    }

    [Serializable]
    public class RpgBattleRegion
    {
        public int id;
        public List<Vector3> pathList;
        public Vector3 battlePosition;
        public Vector3 checkPosition;
        public int pveRegionId;
    }
    
    [Serializable]
    public class PveMapRegion
    {
        public int id;
        public bool isCanFight;
        public List<Vector3> pathList;
        public Vector3 position;
        public Vector3 battlePosition;
        public float battleAreaWidth;
        public float battleAreaHeight;
        public float battleAreaRotation;
        public List<RpgLevelData.RpgStage> battles;
    }

    [Serializable]
    public class PveMapPoint
    {
        public int index;
        public Vector3 position;
        public Vector3 direction;
        public List<int> mapList;
        public float nextMapOffset;
    }
}